Smart space insertion

ABSTRACT

A system and method for inserting space is described. A user may designate content to be inserted into a document and have the system insert space to accommodate the new content. The system and method permit some content to overlie other content as may be intended by a user.

This application is a continuation of U.S. patent application Ser. No.10/393,933, the entirety of which is incorporated herein by reference.

TECHNICAL FIELD

Aspects of the present intention relates to inserting space. Moreparticularly, aspects of the present invention relate to inserting spaceinto a document or electronic file so as to insert new content.

BACKGROUND

Typical computer systems, especially computer systems using graphicaluser interface (GUI) systems, such as Microsoft WINDOWS, are optimizedfor accepting user input from one or more discrete input devices such asa keyboard for entering text, and a pointing device such as a mouse withone or more buttons for driving the user interface.

Some computing systems have expanded the input and interaction systemsavailable to a user by allowing the use of a stylus to input informationinto the systems. The stylus may take the place of both the keyboard(for data entry) as well as the mouse (for control). Some computingsystems receive handwritten electronic information or electronic ink andimmediately attempt to convert the electronic ink into text. Othersystems permit the electronic ink to remain in the handwritten form.

Conventional word processors provide a simple process for insertingspace within a document. For example, a user may repeatedly hit thereturn key to open up more space within a document. If a user wants todrag and drop information into the word processing document, the usermay drop in the content into the document can be readily assured thatthe content within the document will be moved to accommodate the newcontent.

However, re-flowing text based on the insertion of new content is notalways what the user desires. For example in some cases, a user may beinserting a new image into a document. The user may intend that the newimage overlying the existing content. However using the common approachof always inserting new space into a document results in additional workfor the user to constantly readjust how new content will be treated uponinsertion. Accordingly, a better approach is needed to handle theinsertion of new space and/or content.

SUMMARY

Aspects of the present invention address one or more of the issues setforth above, thereby providing an intelligent process for inserting andhandling content. In some aspects, the system examines the content to beinserted and determines if it requires existing content to be moved. Inother aspects of the present invention, the system examines the contentif any at the insertion location and determines if the new contentshould overlie the existing content or the existing content should bemoved to make space for the inclusion of the new content. In yet furtheraspects of these two examinations of the content may be combined so asto provide any better usability of inserting space within a document.Further, other aspects of the present invention relate to determiningthe location of an insertion point so as to better providing space wherea user expects the space to be placed.

These and other aspects are addressed in relation to the Figures andrelated description.

BRIEF DESCRIPTION OF DRAWINGS

The foregoing summary of aspects of the invention, as well as thefollowing detailed description of various embodiments, is betterunderstood when read in conjunction with the accompanying drawings,which are included by way of example, and not by way of limitation withregard to the claimed invention.

FIG. 1 shows a general-purpose computer supporting one or more aspectsof the present invention.

FIG. 2 shows a display for a stylus-based input system according toaspects of the present invention.

FIG. 3 shows new content being added to a page in accordance withaspects of the present invention.

FIG. 4 shows new content being added to a page in accordance withaspects of the present invention.

FIG. 5 shows new content being added to a list in accordance withembodiments of the present invention.

FIGS. 6 and 7 show new content being added to a list in accordance withembodiments of the present invention.

FIGS. 8A and 8B show locations for determining from where new content isto be evaluated in accordance with embodiments of the present invention.

FIGS. 9A and 9B show processes for determining how new content is to behandled in relation to existing content in accordance with embodimentsof the present invention.

FIG. 10 shows various techniques of handling the new and old content inaccordance with embodiments of the present invention.

FIGS. 11 and 12 show various processes of handling space insertion inaccordance with embodiments of the present invention.

DETAILED DESCRIPTION OF DRAWINGS

Aspects of the present invention relate to inserting space intodocuments. The term “document” is used generally herein and includesword processing documents, spreadsheets, images files, presentationfiles, and the like. The systems and methods described herein relate tousing at least one of the present location of an insertion point orprevious focus or location of a document on a display to determine whereto insert content. Aspects of the present invention may be used with astandard personal computer having a mouse and keyboard. Also, aspects ofthe present invention may be used with a stylus-based computing system(which may or may not have a mouse (or trackball or touch pad) and akeyboard).

Aspects of the present invention relate to the ability to insert withina document. Further aspects provide the user at the ability to insertamong the existing content so as to provide a location in a document foraccepting new content. Further, heuristics may be provided that helpdetermine if one desires to insert new content on top of existingcontent.

Aspects of the present application may be applied to standard computingsystems. Further, additional benefit may be achieved in stylus-basedcomputing systems by using aspects of the present invention. Forexample, if a user desires to input drawing information into a document,the system may examine the content to be inserted (drawing information)and content at the location receiving the new content. If the content atthe location is text and the like, the system may insert space so as topermit non-overlap of the existing content with the new content.However, if the existing content is a drawing as well, the user maylikely expect to add information to the existing drawing, rather thaninsert space above it. Accordingly, in this instance, the system maypermit the new content to overlie the existing content.

To assist the user, the following is arranged with the followingsubheadings: characteristics of ink; terms; general-purpose computer;space insertion; and processes for inserting space.

Characteristics of Ink

Electronic ink (or ink) refers to a sequence of strokes, where eachstroke is comprised of a sequence of points. The points may berepresented using a variety of known techniques including Cartesiancoordinates (X, Y), polar coordinates (r, Θ), and other techniques asknown in the art.

As known to users who use ink pens, physical ink (the kind laid down onpaper using a pen with an ink reservoir) may convey more informationthan a series of coordinates connected by line segments. For example,physical ink can reflect pen pressure (by the thickness of the ink), penangle (by the shape of the line or curve segments and the behavior ofthe ink around discreet points), and the speed of the nib of the pen (bythe straightness, line width, and line width changes over the course ofa line or curve).

To provide the look and feel of physical ink, electronic ink mayadditionally store ink strokes and properties associated with the inkstrokes to more fully render ink. Ink may be stored as a series ofstrokes and a series of properties. In other situations, ink may bestored with a complex series of properties in which the properties haveproperties of their own. Properties of the ink may include, for example,color, width, pressure between the stylus and tablet, and angle betweenthe stylus and tablet, and pen shape and the like. While theseproperties may suffice for many applications, electronic ink isextensible to include custom properties (and other data) generated byadditional applications. All strokes and values may be stored directlywith excess information. However, alternative versions of ink reflectconsiderations that eliminate excess information when possible orpracticable so as to minimize the physical size of the stored ink.

The properties used to define an ink object and the strokes within theink object may have varying scope. For example, some properties mayapply to all ink strokes in an ink object (e.g., the shape of a pentip). Other properties may relate only to a specific point (e.g., apoint at which a stylus starts a stroke). Others may relate to specificstrokes while others may relate to packets of information as reported byhardware (e.g., coordinates, pressure, angle of pen, the intervals oftime between reported coordinates, and the like). In short, propertieshave different levels of scope.

To efficiently store properties, some may be explicitly specified whileothers may be implicit. In a simple example, all properties may bedefault properties and not specified in an ink object. So, the inkobject may only have X and Y coordinate values. In another example, theink object may have properties that affect the entire ink object but theproperties are specified in the ink object. In a third example, somestrokes may have a first set of properties and others have a second setof properties. The properties may be defined initially at the beginningof the ink object and the individual strokes may reference thepreviously defined properties as needed. Using this approach of definingproperties then later referencing the properties promotes a greaterefficiency in storing properties. This becomes more apparent as an inkobject becomes larger as the number of properties increases and thenumber of ink strokes referencing the properties increases.

Terms

Ink—A sequence or set of strokes with properties. A sequence of strokesmay include strokes in an ordered form. The sequence may be ordered bythe time captured or by where the strokes appear on a page. Other ordersare possible. A set of strokes may includes sequences of strokes orunordered strokes or any combination thereof

Ink object—A data structure storing ink with or without properties.

Stroke—A sequence or set of captured points. For example, when rendered,the sequence of points may be connected with lines. Alternatively, thestroke may be represented as a point and a vector in the direction ofthe next point. In short, a stroke is intended to encompass anyrepresentation of points or segments relating to ink, irrespective ofthe underlying representation of points and/or what connects the points.

Point—Information defining a location in space. For example, the pointsmay be defined relative to a capturing space (for example, points on adigitizer), a virtual ink space (the coordinates in a space into whichcaptured ink is placed), and/or display space (the points or pixels of adisplay device).

General-Purpose Computer

FIG. 1 illustrates a schematic diagram of an illustrative conventionalgeneral-purpose digital computing environment that can be used toimplement various aspects of the present invention. In FIG. 1, acomputer 100 includes a processing unit 110, a system memory 120, and asystem bus 130 that couples various system components including thesystem memory to the processing unit 110. The system bus 130 may be anyof several types of bus structures including a memory bus or memorycontroller, a peripheral bus, and a local bus using any of a variety ofbus architectures. The system memory 120 includes read only memory (ROM)140 and random access memory (RAM) 150.

A basic input/output system 160 (BIOS), containing the basic routinesthat help to transfer information between elements within the computer100, such as during start-up, is stored in the ROM 140. The computer 100also includes a hard disk drive 170 for reading from and writing to ahard disk (not shown), a magnetic disk drive 180 for reading from orwriting to a removable magnetic disk 190, and an optical disk drive 191for reading from or writing to a removable optical disk 192 such as a CDROM or other optical media. The hard disk drive 170, magnetic disk drive180, and optical disk drive 191 are connected to the system bus 130 by ahard disk drive interface 192, a magnetic disk drive interface 193, andan optical disk drive interface 194, respectively. The drives and theirassociated computer-readable media provide nonvolatile storage ofcomputer readable instructions, data structures, program modules andother data for the personal computer 100. It will be appreciated bythose skilled in the art that other types of computer readable mediathat can store data that is accessible by a computer, such as magneticcassettes, flash memory cards, digital video disks, Bernoullicartridges, random access memories (RAMs), read only memories (ROMs),and the like, may also be used in the example operating environment.

A number of program modules can be stored on the hard disk drive 170,magnetic disk 190, optical disk 192, ROM 140 or RAM 150, including anoperating system 195, one or more application programs 196, otherprogram modules 197, and program data 198. A user can enter commands andinformation into the computer 100 through input devices such as akeyboard 101 and pointing device 102. Other input devices (not shown)may include a microphone, joystick, game pad, satellite dish, scanner orthe like. These and other input devices are often connected to theprocessing unit 110 through a serial port interface 106 that is coupledto the system bus, but may be connected by other interfaces, such as aparallel port, game port or a universal serial bus (USB). Further still,these devices may be coupled directly to the system bus 130 via anappropriate interface (not shown). A monitor 107 or other type ofdisplay device is also connected to the system bus 130 via an interface,such as a video adapter 108. In addition to the monitor, personalcomputers typically include other peripheral output devices (not shown),such as speakers and printers. In a one embodiment, a pen digitizer 165and accompanying pen or stylus 166 are provided in order to digitallycapture freehand input. Although a direct connection between the pendigitizer 165 and the serial port interface 106 is shown, in practice,the pen digitizer 165 may be coupled to the processing unit 110directly, parallel port or other interface and the system bus 130 asknown in the art. Furthermore, although the digitizer 165 is shown apartfrom the monitor 107, the usable input area of the digitizer 165 may beco-extensive with the display area of the monitor 107. Further still,the digitizer 165 may be integrated in the monitor 107, or may exist asa separate device overlaying or otherwise appended to the monitor 107.

The computer 100 can operate in a networked environment using logicalconnections to one or more remote computers, such as a remote computer109. The remote computer 109 can be a server, a router, a network PC, apeer device or other common network node, and typically includes many orall of the elements described above relative to the computer 100,although only a memory storage device 111 has been illustrated inFIG. 1. The logical connections depicted in FIG. 1 include a local areanetwork (LAN) 112 and a wide area network (WAN) 113. Such networkingenvironments are commonplace in offices, enterprise-wide computernetworks, intranets and the Internet.

When used in a LAN networking environment, the computer 100 is connectedto the local network 112 through a network interface or adapter 114.When used in a WAN networking environment, the personal computer 100typically includes a modem 115 or other means for establishing acommunications over the wide area network 113, such as the Internet. Themodem 115, which may be internal or external, is connected to the systembus 130 via the serial port interface 106. In a networked environment,program modules depicted relative to the personal computer 100, orportions thereof, may be stored in the remote memory storage device.

It will be appreciated that the network connections shown areillustrative and other techniques for establishing a communications linkbetween the computers can be used. The existence of any of variouswell-known protocols such as TCP/IP, Ethernet, FTP, HTTP and the like ispresumed, and the system can be operated in a client-serverconfiguration to permit a user to retrieve web pages from a web-basedserver. Any of various conventional web browsers can be used to displayand manipulate data on web pages.

FIG. 2 illustrates an illustrative tablet PC 201 that can be used inaccordance with various aspects of the present invention. Any or all ofthe features, subsystems, and functions in the system of FIG. 1 can beincluded in the computer of FIG. 2. Tablet PC 201 includes a largedisplay surface 202, e.g., a digitizing flat panel display, preferably,a liquid crystal display (LCD) screen, on which a plurality of windows203 is displayed. Using stylus 204, a user can select, highlight, and/orwrite on the digitizing display surface 202. Examples of suitabledigitizing display surfaces 202 include electromagnetic pen digitizers,such as Mutoh or Wacom pen digitizers. Other types of pen digitizers,e.g., optical digitizers, may also be used. Tablet PC 201 interpretsgestures made using stylus 204 in order to manipulate data, enter text,create drawings, and/or execute conventional computer application taskssuch as spreadsheets, word processing programs, and the like.

The stylus 204 may be equipped with one or more buttons or otherfeatures to augment its selection capabilities. In one embodiment, thestylus 204 could be implemented as a “pencil” or “pen”, in which one endconstitutes a writing portion and the other end constitutes an “eraser”end, and which, when moved across the display, indicates portions of thedisplay are to be erased. Other types of input devices, such as a mouse,trackball, or the like could be used. Additionally, a user's own fingercould be the stylus 204 and used for selecting or indicating portions ofthe displayed image on a touch-sensitive or proximity-sensitive display.Consequently, the term “user input device”, as used herein, is intendedto have a broad definition and encompasses many variations on well-knowninput devices such as stylus 204. Region 205 shows a feedback region orcontact region permitting the user to determine where the stylus 204 ascontacted the display surface 202.

In various embodiments, the system provides an ink platform as a set ofCOM (component object model) services that an application can use tocapture, manipulate, and store ink. One service enables an applicationto read and write ink using the disclosed representations of ink. Theink platform may also include a mark-up language including a languagelike the extensible markup language (XML). Further, the system may useDCOM as another implementation. Yet further implementations may be usedincluding the Win32 programming model and the .Net programming modelfrom Microsoft Corporation.

Space Insertion

FIG. 3 shows an example of how page 301 may receive new content 305.Page 301 includes existing content 302,303,304 and blank space 306.Depending on an insertion location on page 301, the various existingcontent 302-304 and blank space 306 may respond differently to theinsertion of new content 305.

FIG. 4 shows an example of how content may be added to an existing pageof content. Page 401 includes text. Drawing 402 is to be added atlocation 403. As drawing 402 would block the text on page 401 and thatis not likely the user's content, the text on page 401 would have spaceinserted into it at location 403 to accept drawing 402. Later, drawing406 may be inserted into drawing 402. As drawing 406 would likelyaugment the information in drawing 402, space is not inserted intodrawing 402 to accommodate new drawing 406. Rather drawing 406 mayoverlie drawing 402. Next, text 404 may be intended to be inserted atlocation 405. As it is likely that text 404 is to be read in conjunctionwith the text on page 401, but not occlude the text on page 401, spacemay be inserted at location 405 to accept that text 404

FIG. 5 shows an example of inserting an item into a list or a table.List 501 is shown as today's shopping list. Shopping list 501 includescontent “eggs”, “bread”, and “water.” Content 502 includes a long termshopping list that includes, among other items, “milk” 503. Here, theuser has selected milk 503 and attempted to insert it into shopping list501. The resultant list 504 is shown as today's shopping list includingeggs, milk, bread and water. Here, space was made available between theeggs entry and the bread entry to accommodate milk 503. The example ofFIG. 5 shows the invention applied to text on text.

FIG. 6 shows an example of the shopping list using handwritten ink.Shopping list 601 includes entries milk 603 and bread 604. A user isattempting to insert an entry for eggs 602 between milk 603 and bread604. Because the user's insertion location is somewhere between milk 603and bread 604, a determination needs to be made of which content of page603 needs to be moved to accommodate eggs 602.

In this example the bounding boxes surrounding each entry are used.These bounding boxes help determine one ink is selected or the maypotentially overlap another ink. Of course, bounding boxes may be usedfor other non-ink applications as well. In this regard, the inventionmay be applied to other non-ink applications. Other processes fordetermining the overlap may be used as well, in conjunction with or inplace of bounding boxes. For example, a system may rely on the actualcontent within the boxes to determine overlap. Further non-rectilinearshapes may also be used to determine intersection.

The system may determine that eggs 602 overlap's both milk 603 and bread604. The system may deal with this overlap by determining which item,603 or 604, is closer to the top of the page. Further, the system maydetermine if eggs 602 overlap's milk 603 by a predetermined amount. Inthis example of the system determines if eggs 602 overlaps milk 603 by apercentage overlap 605. If the top of eggs 602 is within the percentageoverlap 605, then the system may determine that the user in tens thateggs 602 be placed higher than milk 603. In that case, milk 603 andbread 604 may be moved down to provide space for receiving eggs 602.

In one example, the space inserted may be determined by the size of abounding box or other shape surrounding the content to be inserted. Inother examples, the amount of space to be inserted may be determined bythe spacing in a list or indent in an outline. Further, movement ofcontent within an existing document may be both up and down and/or maybeleft and right as well.

FIG. 7 shows an alternative representation of the shopping list of FIG.6. Here, shopping list 701 includes eggs 702 and bread 704 and is aboutto receive milk 703. Eggs 702 is not confined to a single tabular entrywithin the list of 701. Rather the letters “g” descend below a dividingline between the eggs entry 702 and bread entry 704. Because of thisoverlap, the system may need to determine if the user's intent. In thisexample, the user may place milk 703 completely within a tabular regionfor entry into shopping list 701, where only the bread entry 704 shouldbe moved. However because of the decenders from eggs 702, the entry formilk 703 may overlap eggs 702 by the percentage overlap 605, therebyplacing milk 703 above eggs 702, when the user's intent is to place itbelow eggs 702. Accordingly, the system may have a hierarchicalrelationship between placement within a structured format of a list asopposed to percentage overlap in terms of determining which contentshould be moved.

FIGS. 8A and 8B show various ways of designating portions of a documentfor insertion. In FIG. 8A, content 801 includes a centerline 802. Thiscenterline 802 may be used to determine in which region is the userintends to place content 801. In the FIG. 8 b, content 803 includes alocation 805 having been designated by stylus 804. This location 805 maybe a drag and drop point where a user has picked up content 803 and hasdropped it into a document. It is appreciated that any location 805 maybe used for determining overlap between content to be inserted andcontent existing on a page. Further any line (horizontal or vertical orany other direction) may be used to determine if content is to beinserted at one location or another.

FIGS. 9A and 9B show various aspects of new content and existing contentthat may be used to determine if space should be inserted and wherespace should be inserted. In FIG. 9A, existing content 901 and newcontent 902 overlap by an overlapping portion 903. This overlappingportion 903 may be used to determine if content 902 is intended to beplaced higher than content 901 or not. As an example, overlappingportion 903 may be set to 40% as a threshold. If the overlap exceeds 40%(measured from the bottom of the existing content and the top of the newcontent) (or is less than 60% measured from the top of the existingcontent and the top of the new content), then the system may determineto move the existing content 901 down and insert space above it for newcontent 902. Further, these values of 40% and 60% may be adjusted toaccommodate different preferences, screen resolutions, mouse movementresolutions, stylus movement resolutions, and the like.

FIG. 9B shows the use of a centerline 908 in which to determine where ina table having lines is new content to be inserted. Here, new content904 includes centerline 908 placed between two lines of a table 905 and906. Based on centerline 908 being between lines 905 and 906, the systemmay determine that content 904 is to be placed between these two lines.However, new content 904 also includes a location 907 that wasdesignated by a stylus (for example, stylus 804). This new location mayalso help the system determine where content 904 is to be inserted. Forexample, the fact that location 907 is above line 905 may suggest thatcontent 904 is to be inserted above line 905. This determination may ormay not be based on the size of content 904, the distance between point907 and line 905, and/or some combination of these values.

FIG. 10 shows a relationship between content to be inserted andunderlying content and how these content interact. Content to beinserted may include drawings/pictures ink, text, text boxes,organizational charts, tables, and other content. Existing content mayinclude these same contents as well as no content (see, for example,space 306 of FIG. 3). The movement insertion of space and orrepositioning of underlying content in FIG. 10 is adjustable. The valuesgiven are for illustrative purposes only. They may be changed based onuser preferences or developmental tools. For example, a general approachto defining movement or non-movement of content may be as follows. Ifthere is no content on a page receiving content, there is no movement(or possibly expansion of the page) of the page receiving the content.For any content being inserted on top of a drawing or picture, thecontent is made to overly on or offset from the drawing or picture. Ifthe underlying content is text or a text box or a table or writing ink,space is inserted to provide room for the new content. If the content ona page is an organizational chart, space is inserted except when the newcontent is an org chart (where the original org chart may be modified orreposition to accept the new org chart) and when the new content isdrawing ink (where drawing ink may be applied on top of the org chart).Finally, where the existing content on a page is drawing ink, space maybe inserted for all types of new content except when the new content isa drawing or is drawing ink. Alternatively, no movement may be appliedin that the action of drawing ink may be made to act like adrawing/picture described and shown higher in the table of FIG. 10. Ofcourse, these actions are illustrative: they may be modified if adeveloper or user desires an alternate set of actions for content.

A parser may be used to distinguish between drawing ink and writing ink,where the drawing ink is considered to be a drawing and the writing inkis considered to be akin to text or a text box. For example, the parsermay look for shapes or may attempt to apply recognition to the ink.Other parsing techniques may be used. Alternatively, a user may identifyto the system which type of ink a current ink is (for example, a usermay tell a system that the following ink is a drawing or representstext).

Processes for Inserting Space

FIG. 11 shows a process for inserting space. In step 1101, the systemreceives an instruction to insert content. In step 1102, the systemdetermines the type of content to be inserted. In step 1103, thelocation of insertion is determined. In step 1104, the system examinesthe content (if any) at the insertion location. In step 1105, space isinserted. Alternatively, based on the determination of steps 1102 and1104, the system may not insert space at step 1105. In step 1106,content is inserted.

FIG. 12 shows an alternative process for determining whether contentshould be moved. In step 1201, the system receives an instruction toinsert content. In step 1202, the system determines an insertionlocation for the content. In step 1203, the system determines the typeof content to be inserted. In step 1204, the system determines the typeof content (if any) at the insertion location. It is appreciated thatsteps 1203 and 1204 may be performed concurrently or sequentially in anyorder. Next, in step 1205, the system determines if the content at theinsertion location should be moved. For example, the system may checkwith a table in as set forth in FIG. 10, to determine if content shouldbe moved in relation to new content. If yes from step 1205, the systemmoves content at the insertion location in step 1206. If no, the systemadds the new content at the insertion location in step 1207.

Although the invention has been defined using the appended claims, theseclaims are illustrative in that the invention is intended to include theelements and steps described herein in any combination or subcombination. Accordingly, there are any number of alternativecombinations for defining the invention, which incorporate one or moreelements from the specification, including the description, claims, anddrawings, in various combinations or sub combinations. It will beapparent to those skilled in the relevant technology, in light of thepresent specification, that alternate combinations of aspects of theinvention, either alone or in combination with one or more elements orsteps defined herein, may be utilized as modifications or alterations ofthe invention or as part of the invention. It may be intended that thewritten description of the invention contained herein covers all suchmodifications and alterations.

The invention claimed is:
 1. A computer-implemented process for inserting space into a document, comprising: receiving an instruction to insert new content at an insertion location in a document, the document including a first existing content and a second existing content, the new content being a different type of content than at least one of the first content and the second content; determining a bounding shape for the new content; determining an amount of overlap between the new content and the first existing content, and an amount of overlap between the new content and the second existing content; determining a first content interaction movement specification regarding the overlap between the new content and the first existing content, and a second content interaction movement specification regarding the overlap between the new content and the second existing content; inserting, based at least on the determining of the second content interaction movement specification, space at the insertion location by moving the second existing content based on the amount of overlap; and inserting, based at least on the determining of the first content interaction movement specification and the determining of the second content interaction movement specification, said new content at the insertion location, the new content overlapping the first existing content by the determined amount while not overlapping the second existing content.
 2. The computer-implemented process of claim 1, wherein determining an amount of overlap between the new content and the first existing content, and an amount of overlap between the new content and the second existing content comprises: determining a first bounding shape for the first existing content and a second bounding shape for the second existing content; determining an amount of overlap between the new content bounding shape and the first existing content bounding shape; and determining an amount of overlap between the new content bounding shape and the second existing content bounding shape.
 3. The computer-implemented process of claim 1, wherein receiving an instruction to insert new content at an insertion location comprises using a finger to select or indicate a portion of a displayed image on a touch-sensitive or proximity-sensitive screen.
 4. The computer-implemented process of claim 1, wherein the first content interaction movement specification is determined based on the content type of the new content, the content type of the first existing content, and a listing of content interaction movement relationships, the listing including at least one user-defined content interaction movement specification.
 5. The computer-implemented process of claim 1, wherein the second content interaction movement specification is determined based on the content type of the new content, the content type of the second existing content, and a listing of content interaction movement relationships, the listing including at least one user-defined content interaction movement specification.
 6. A computing device for inserting space into a document, comprising: an input receiver configured to receive an instruction to insert new content at an insertion location in a document, the document including a first existing content and a second existing content, the new content being a different type of content than at least one of the first content and the second content; a parser configured to: determine a bounding shape for the new content; determine an amount of overlap between the new content and the first existing content, and an amount of overlap between the new content and the second existing content; and determining a first content interaction movement specification regarding the overlap between the new content and the first existing content, and a second content interaction movement specification regarding the overlap between the new content and the second existing content; and an insertion module configured to: based at least on the determining of the second content interaction movement specification, insert space at the insertion location by moving the second existing content based on the amount of overlap; and based at least on the determining of the first content interaction movement specification and the determining of the second content interaction movement specification, insert said new content at the insertion location, the new content overlapping the first existing content by the determined amount while not overlapping the second existing content.
 7. The computing device of claim 6, wherein the parser configured to determine an amount of overlap between the new content and the first existing content, and an amount of overlap between the new content and the second existing content comprises a parser configured to: determine a first bounding shape for the first existing content and a second bounding shape for the second existing content; determine an amount of overlap between the new content bounding shape and the first existing content bounding shape; and determine an amount of overlap between the new content bounding shape and the second existing content bounding shape.
 8. The computing device of claim 6, wherein the input receiver configured to receive an instruction to insert new content at an insertion location comprises an input receiver configured to use a finger to select or indicate a portion of a displayed image on a touch-sensitive or proximity-sensitive screen.
 9. The computing device of claim 6, wherein the first content interaction movement specification is determined based on the content type of the new content, the content type of the first existing content, and a listing of content interaction movement relationships, the listing including at least one user-defined content interaction movement specification.
 10. The computing device of claim 6, wherein the second content interaction movement specification is determined based on the content type of the new content, the content type of the second existing content, and a listing of content interaction movement relationships, the listing including at least one user-defined content interaction movement specification.
 11. The computing device of claim 6, wherein the input receiver comprises a digitizer.
 12. The computing device of claim 6, wherein the input receiver comprises a touch-sensitive or proximity-sensitive screen.
 13. The computer-implemented process of claim 1, wherein the insertion location is determined by a drag and drop point within said new content.
 14. The computing device of claim 6, wherein the insertion location is determined by a drag and drop point within said new content.
 15. The computer-implemented process of claim 1, wherein the insertion location is determined by an overlap between said new content and the first existing content.
 16. The computing device of claim 6, wherein the insertion location is determined by an overlap between said new content and the first existing content.
 17. The computer-implemented process of claim 1, wherein the insertion location is determined by the position of said new content in relation to a structure of a document or item within said document.
 18. The computing device of claim 6, wherein the insertion location is determined by the position of said new content in relation to a structure of a document or item within said document.
 19. The computer-implemented process of claim 1, wherein said determining steps are performed sequentially.
 20. A computer-implemented process for inserting space into a document, comprising: receiving an instruction to insert new content at an insertion location in a document, the document including a first existing content and a second existing content, the new content being a different type of content than at least one of the first content and the second content; determining a bounding shape for the new content; determining an amount of overlap between the new content and the first existing content, and an amount of overlap between the new content and the second existing content; determining a first content interaction movement specification regarding the overlap between the new content and the first existing content, and a second content interaction movement specification regarding the overlap between the new content and the second existing content; inserting, based at least on the determining of the second content interaction movement specification, space at the insertion location by moving the second existing content based on the amount of overlap; and inserting, based at least on the determining of the first content interaction movement specification and the determining of the second content interaction movement specification, said new content at the insertion location, the new content overlapping the first existing content by the determined amount while not overlapping the second existing content, wherein the second content interaction movement specification is determined based on the content type of the new content, the content type of the second existing content, and a listing of content interaction movement relationships, the listing including at least one user-defined content interaction movement specification. 